package com.sunwayhorizo.health.business.dto.patad.encounter;

import com.sunwayhorizo.health.business.dto.DictionaryDTO;
import com.sunwayhorizo.health.common.validateGroups.NewDeptTransfer;
import com.sunwayhorizo.health.common.validateGroups.NewInHospital;

import org.hibernate.validator.constraints.*;

/**
 * @ClassName InHospitalDTO <br>
 * @PackageName com.sunwayhorizo.health.business.dto.patad.encounter<br>
 * @Description 入院、入科基本信息DTO<br>
 * @Author jinzw <br>
 * @Date 2011-01-2 <br>
 * @Version 1.0 <br>
 * @ModifiedDesc <br>
 * @ModifiedDate <br>
 * @ModifiedBy <br>
 * @Email jinzw@sunwaysoft.com.cn <br>
 * @Copyright 2010-2020 北京三维海容 All Rights Reserved. <br>
 */
public class InHospitalDTO {

	/**
	 * 住院号
	 */
	private String hospitalizationNO;
	/**
	 * 住院次数
	 */
	private String encounterNum;

	/**
	 * 科室（工作组）
	 */
	@NotEmpty(message = "科室id不能为空！", groups = {
			NewInHospital.class })
	private String roleID;

	/**
	 * 科室（工作组）
	 */
	private String departmentId;

	/**
	 * 科室（工作组）中文名称
	 */
	private String deptName;

	/**
	 * 诊断Id(从住院预约中获取)
	 */
	private String diagnoseId;

	/**
	 * 门诊诊断（后台字典）
	 */
	private DictionaryDTO outPatDiagnose = new DictionaryDTO();

	/**
	 * 门诊接诊医生
	 */
	private String doctorId;

	/**
	 * 门诊就诊医生中文名称
	 */
	private String doctorName;

	/**
	 * 入院方式（门诊:OutPatService、转院:Transfers 默认门诊）
	 */
	@NotEmpty(message = "入院方式不能为空！", groups = NewInHospital.class)
	private String admissionWay;
	/**
	 * 入院目的（治疗:Treatment、查体:CheckHealth、分娩:Childbirth、计划生育:FamilyPlanning，默认【治疗】
	 * ）
	 */
	@NotEmpty(message = "入院目的不能为空！", groups = NewInHospital.class)
	private String admissionPurpose;
	/**
	 * 入院时间/转科时间
	 */
	private String admissionTime;
	/**
	 * 联系人
	 */
	private String linkMan;

	/**
	 * 联系方式
	 */
	private String linkManWay;

	/**
	 * 联系人关系
	 */
	private String linkManRelation;

	/**
	 * 出院方式(预出院:AppointmentOut、正常出院:NormalOut、转院:TransfersOut、死亡:Death、其他:Other)
	 */
	private String leaveHospitalWay;

	/**
	 * 出院时间
	 */
	private String leaveHospitalTime;

	/**
	 * 医院名称
	 */
	private String orgName;

	@Override
	public String toString() {
		return "InHospitalDTO [\n住院号=" + hospitalizationNO + ",\n 住院次数="
				+ encounterNum + ",\n 科室（工作组）角色id=" + roleID
				+ ",\n 科室（工作组）中文名称=" + deptName + ",\n 诊断Id=" + diagnoseId
				+ ",\n 科室（工作组）实体id=" + departmentId + ",\n 门诊诊断字典="
				+ outPatDiagnose + ",\n 门诊接诊医生id=" + doctorId
				+ ",\n 门诊就诊医生中文名称=" + doctorName + ",\n 入院方式=" + admissionWay
				+ ",\n 入院目的=" + admissionPurpose + ",\n 入院时间/转科时间="
				+ admissionTime + ",\n 联系人=" + linkMan + ",\n 联系方式="
				+ ",\n 医院名称=" + orgName + linkManWay + ",\n 出院方式="
				+ leaveHospitalWay + ",\n 出院时间=" + leaveHospitalTime + "]";
	}

	public String getEncounterNum() {
		return encounterNum;
	}

	public void setEncounterNum(String encounterNum) {
		this.encounterNum = encounterNum;
	}

	public String getRoleID() {
		return roleID;
	}

	public void setRoleID(String roleID) {
		this.roleID = roleID;
	}

	public String getDoctorId() {
		return doctorId;
	}

	public void setDoctorId(String doctorId) {
		this.doctorId = doctorId;
	}

	public String getAdmissionWay() {
		return admissionWay;
	}

	public void setAdmissionWay(String admissionWay) {
		this.admissionWay = admissionWay;
	}

	public String getAdmissionPurpose() {
		return admissionPurpose;
	}

	public void setAdmissionPurpose(String admissionPurpose) {
		this.admissionPurpose = admissionPurpose;
	}

	public String getAdmissionTime() {
		return admissionTime;
	}

	public void setAdmissionTime(String admissionTime) {
		this.admissionTime = admissionTime;
	}

	public String getLinkMan() {
		return linkMan;
	}

	public void setLinkMan(String linkMan) {
		this.linkMan = linkMan;
	}

	public String getLinkManWay() {
		return linkManWay;
	}

	public void setLinkManWay(String linkManWay) {
		this.linkManWay = linkManWay;
	}

	public DictionaryDTO getOutPatDiagnose() {
		return outPatDiagnose;
	}

	public void setOutPatDiagnose(DictionaryDTO outPatDiagnose) {
		this.outPatDiagnose = outPatDiagnose;
	}

	public String getHospitalizationNO() {
		return hospitalizationNO;
	}

	public void setHospitalizationNO(String hospitalizationNO) {
		this.hospitalizationNO = hospitalizationNO;
	}

	public String getDeptName() {
		return deptName;
	}

	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}

	public String getDoctorName() {
		return doctorName;
	}

	public void setDoctorName(String doctorName) {
		this.doctorName = doctorName;
	}

	public String getLeaveHospitalWay() {
		return leaveHospitalWay;
	}

	public void setLeaveHospitalWay(String leaveHospitalWay) {
		this.leaveHospitalWay = leaveHospitalWay;
	}

	public String getLeaveHospitalTime() {
		return leaveHospitalTime;
	}

	public void setLeaveHospitalTime(String leaveHospitalTime) {
		this.leaveHospitalTime = leaveHospitalTime;
	}

	public String getDiagnoseId() {
		return diagnoseId;
	}

	public void setDiagnoseId(String diagnoseId) {
		this.diagnoseId = diagnoseId;
	}

	public void setLinkManRelation(String linkManRelation) {
		this.linkManRelation = linkManRelation;
	}

	public String getLinkManRelation() {
		return linkManRelation;
	}

	public void setOrgName(String orgName) {
		this.orgName = orgName;
	}

	public String getOrgName() {
		return orgName;
	}

	public void setDepartmentId(String departmentId) {
		this.departmentId = departmentId;
	}

	public String getDepartmentId() {
		return departmentId;
	}

}
